package com.rpinfo.editalog.usuario;




import com.rpinfo.editalog.usuario.UsuarioDao;
import java.io.Serializable;
import java.util.Arrays;
import java.util.Date;
import java.util.Objects;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import org.hibernate.annotations.NaturalId;

/**
 * "Teste de alteração"
 *
 * @author camilo
 */
@Entity
@Table(name = UsuarioDao.NAME_TABLE)
public class Usuario implements Serializable {

  public static final String ATTRIBUTE_ID = "id";
  public static final String ATTRIBUTE_NOME = "nome";
  public static final String ATTRIBUTE_NOME_COMPLETO = "nomeCompleto";
  public static final String ATTRIBUTE_COD = "cod";
  public static final String ATTRIBUTE_STATUS = "status";
  public static final String ATTRIBUTE_DATA_CADASTRO = "dataCadastro";
  public static final String ATTRIBUTE_DATA_ALTERACAO = "dataAlteracao";
  public static final String ATTRIBUTE_EMAIL = "email";
  public static final String ATTRIBUTE_SENHA = "senha";
  @Id
  @SequenceGenerator(name = UsuarioDao.NAME_SEQUENCE, sequenceName = UsuarioDao.NAME_SEQUENCE)
  @GeneratedValue(strategy = GenerationType.AUTO, generator = UsuarioDao.NAME_SEQUENCE)
  private int id;
  @NaturalId
  @Column(name = UsuarioDao.NAME_COLUMN_NOME, nullable = false)
  private String nome;
  @NaturalId
  @Column(name = UsuarioDao.NAME_COLUMN_NOME_COMPLETO, nullable = false)
  private String nomeCompleto;
  @NaturalId
  @Column(nullable = false, name = UsuarioDao.NAME_COLUMN_COD)
  private String cod;
//  @Column(name = UsuarioDao.NAME_COLUMN_STATUS, nullable = false)
//  private StatusUsuario status;
  @Temporal(TemporalType.DATE)
  @Column(name = UsuarioDao.NAME_COLUMN_DATA_CADASTRO, nullable = false, updatable = false)
  private Date dataCadastro;
  @Temporal(TemporalType.DATE)
  @Column(name = UsuarioDao.NAME_COLUMN_DATA_ALTERACAO)
  private Date dataAlteração;
  @NaturalId
  @Column(name = UsuarioDao.NAME_COLUMN_EMAIL)
  private String email;
  @Column(name = UsuarioDao.NAME_COLUMN_SENHA)
  private byte[] senha;

  public int getId() {
    return id;
  }

  public void setId(int id) {
    this.id = id;
  }

  public String getNome() {
    return nome;
  }

  public void setNome(String nome) {
    this.nome = nome;
  }

  public String getNomeCompleto() {
    return nomeCompleto;
  }

  public void setNomeCompleto(String nomeCompleto) {
    this.nomeCompleto = nomeCompleto;
  }

  public String getCod() {
    return cod;
  }

  public void setCod(String cod) {
    this.cod = cod;
  }

//  public StatusUsuario getStatus() {
//    return status;
//  }
//
//  public void setStatus(StatusUsuario status) {
//    this.status = status;
//  }

  public Date getDataCadastro() {
    return dataCadastro;
  }

  public void setDataCadastro(Date dataCadastro) {
    this.dataCadastro = dataCadastro;
  }

  public Date getDataAlteração() {
    return dataAlteração;
  }

  public void setDataAlteração(Date dataAlteração) {
    this.dataAlteração = dataAlteração;
  }

  public String getEmail() {
    return email;
  }

  public void setEmail(String email) {
    this.email = email;
  }

  public byte[] getSenha() {
    return senha;
  }

  public void setSenha(byte[] senha) {
    this.senha = senha;
  }

}
